package 构造特定数组的逆序拼接.src.main;

import java.util.Arrays;

public class Main2 {
    public static int[] solution(int n) {
        // 创建一个足够大的数组来存储结果
//        int totalLength = n * (n + 1) ;
//        int[] resultArray = new int[totalLength];
//        int index = 0;

        // 正序添加元素
//        for (int i = 1; i <= n; i++) {
//            for (int j = 1; j <= i; j++) {
//                resultArray[index++] = j;
//            }
//        }

        // 逆序添加元素
//        for (int i = 1 ; i <= n; i++) {
//
//            for (int j = n-i+1; j > 0; j--) {
//                resultArray[index++] = j;
//            }
//        }
        int[] resultArray ={};

        int[] resultArray1= creayeInverseContinuousArrays(n);

        for (int i = n; i >0; i--){
            resultArray = concatArrays(resultArray1,  Arrays.copyOfRange(resultArray1, 1, i));

        }


        return resultArray;
    }


    public static int[] creayeInverseContinuousArrays(int n) {
        int[] resultArray = new int[n];
        int index = 0;
        for (int i = n ; i > 0; i--) {

                resultArray[index++] = i;
            }
        return resultArray;
    }
    public static int[] concatArrays(int[] arr1, int[] arr2) {
        int[] result = Arrays.copyOf(arr1, arr1.length + arr2.length);
        System.arraycopy(arr2, 0, result, arr1.length, arr2.length);
        return result;
    }

    public static void main(String[] args) {
        System.out.println(Arrays.toString(solution(3))); // 应输出 [1, 1, 2, 1, 2, 3, 2, 1, 2, 3]
        System.out.println(Arrays.toString(creayeInverseContinuousArrays(4)));
//        System.out.println(Arrays.toString(concatArrays(new int[] { 1, 2 }, new int[] { 3, 4 }))); // 输出 [1, 2, 3, 4]
    }
}